package com.six.epidemic.report.pojo

import com.baomidou.mybatisplus.annotation.*
import com.gitee.sunchenbin.mybatis.actable.annotation.*
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlCharsetConstant
import com.six.epidemic.report.pojo.vo.SearchEpidemicReport
import org.apache.ibatis.type.JdbcType
import java.io.Serializable
import java.util.*

@Table(value = "epidemicReport", comment = "疫情上報信息")
@TableCharset(MySqlCharsetConstant.UTF8)
@TableName("epidemicReport")
class EpidemicReport : Serializable {
    @IsKey
    @TableId(value = "id", type = IdType.AUTO)
    @Column(comment = "主键id", isAutoIncrement = true)
    var id: Long = 0; //id主键

    @Column(name = "trueName", isNull = false)
    @TableField(value = "trueName")

    var trueName: String = ""; // 上报人姓名

    @Column(name = "identityCard", isNull = false)
    @TableField(
        value = "identityCard",
    )

    var identityCard: String = ""; //身份证

    @Column(name = "gender", isNull = false)
    @TableField(value = "gender")

    var gender: String = "男"; //性别

    @Column(name = "phone", isNull = false)
    @TableField(value = "phone")
    var phone: String = ""; // 上报人联系方式

    @Column(name = "provinces", isNull = false)
    @TableField(value = "provinces")

    var provinces: String = ""; // 上报人省市区县,以|分隔

    @Column(name = "address", isNull = false)
    @TableField(value = "address")

    var address: String = ""; //详细地址

    @Column(name = "reason", isNull = false)
    @TableField(value = "reason")

    var reason: String = ""; //上报原因

    @Column(name = "symptom", isNull = false)
    @TableField(value = "symptom")

    var symptom: String = ""; //症状，多选以、号分隔

    @Column(name = "healthCodeColor", isNull = false)
    @TableField(
        value = "healthCodeColor",
    )

    var healthCodeColor: String = ""; //目前健康码颜色

    @Column(name = "contactHistory", isNull = false)
    @TableField(
        value = "contactHistory",
    )

    var contactHistory: String = ""; //上报人最近14天内是否存在中、高风险区旅游史/接触史，或相关病患接触史？

    @Column(name = "vaccination", isNull = false)
    @TableField(
        value = "vaccination",
    )

    var vaccination: String = "";// 疫苗接种情况

    @Column(name = "beforeVehicle", isNull = false)
    @TableField(
        value = "beforeVehicle",
    )

    var beforeVehicle: String = ""; //过去两周，您是否乘坐过以下交通工具？

    @Column(name = "temperatureToday", isNull = false)
    @TableField(
        value = "temperatureToday",
    )

    var temperatureToday: Double = 0.0;//今天体温

    @Column(name = "familySituation", isNull = false)
    @TableField(
        value = "familySituation",
    )

    var familySituation: String = "";//近期，您的家人是否有发热、干咳、乏力、呼吸困难等症状？

    @Column(name = "information", isNull = false)
    @TableField(
        value = "information",
    )

    var information: String = "";//任何与疫情相关信息，请详细说明

    @Column(name = "reportTime", isNull = false)
    @TableField(
        value = "reportTime",
        jdbcType = JdbcType.DATE
    )

    var reportTime: Date = Date();//上报时间

    constructor()

    companion object {}

    override fun toString(): String {
        return "EpidemicReport(id=$id, trueName='$trueName', identityCard='$identityCard', gender='$gender', phone='$phone', provinces='$provinces', address='$address', reason='$reason', symptom='$symptom', healthCodeColor='$healthCodeColor', contactHistory='$contactHistory', vaccination='$vaccination', beforeVehicle='$beforeVehicle', temperatureToday=$temperatureToday, familySituation=$familySituation, information='$information', reportTime=$reportTime)"
    }


}
